package com.work.service.main;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.work.dto.main.RetreatSetAppSubmitDTO;
import com.work.dto.main.RetreatSetSearchDTO;
import com.work.entity.main.RetreatSet;
import com.work.vo.main.*;
import org.springblade.core.mp.base.BaseService;

import java.util.List;

/**
 * 退关设置接口
 *
 * @author ：dujianyu
 * @since ：Created in 2024/5/27 13:24
 */
public interface IRetreatSetService extends BaseService<RetreatSet> {
    /**
     * 退关设置提交
     * @param dto 数据
     * @return boolean
     * @author dujianyu
     * @since 2024/5/27 13:48
     */
    boolean submitRetreatSet(RetreatSetAppSubmitDTO dto);

    /**
     * 删除退关设置
     * @param id 主键ID
     * @return boolean
     * @author dujianyu
     * @since 2024/5/27 15:33
     */
    boolean removeRetreatSet(Long id);

    /**
     * 分页
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<RetreatSetVO>
     * @author dujianyu
     * @since 2024/5/27 15:38
     */
    IPage<RetreatSetVO> selectRetreatSetPage(IPage<RetreatSetVO> page, RetreatSetSearchDTO dto);

    /**
     * 退关提货列表
     * @param dto 搜索条件
     * @return List<RetreatTallyVO>
     * @author dujianyu
     * @since 2024/5/28 10:22
     */
    List<RetreatTallyVO> selectRetreatTallyList(RetreatSetSearchDTO dto);

    /**
     * 退关总计
     * @param dto 搜索条件
     * @return RetreatTotalVO
     * @author dujianyu
     * @since 2024/5/28 14:03
     */
    RetreatTotalVO selectRetreatTotal(RetreatSetSearchDTO dto);

    /**
     * 综合统计退关台账
     * @param dto 搜索条件
     * @param page 分页
     * @return IPage<RetreatSetStatVO>
     * @author dujianyu
     * @since 2024/7/5 14:10
     */
    IPage<RetreatSetStatVO> selectRetreatSetStatPage(IPage<RetreatSetStatVO> page, RetreatSetSearchDTO dto);

    /**
     * 综合统计退关合计
     * @param dto 搜索条件
     * @return RetreatTotalVO
     * @author dujianyu
     * @since 2024/7/5 14:32
     */
    RetreatTotalVO selectRetreatSetStatTotal(RetreatSetSearchDTO dto);

    /**
     * 综合统计退关台账详情
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<RetreatSetStatDetailVO>
     * @author dujianyu
     * @since 2024/7/9 8:43
     */
    IPage<RetreatSetStatDetailVO> selectRetreatSetStatDetailPage(IPage<RetreatSetStatDetailVO> page, RetreatSetSearchDTO dto);

    /**
     * 综合统计退关理货详情
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<RetreatSetStatTallyVO>
     * @author dujianyu
     * @since 2024/7/9 9:44
     */
    IPage<RetreatSetStatTallyVO> selectRetreatSetStatTallyPage(IPage<RetreatSetStatTallyVO> page, RetreatSetSearchDTO dto);
}
